859C - Pie Rules - CodeForces Solution


dp games *1500

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>

using namespace std;

#define int long long

const int INF = 1e18;

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n;
    cin >> n;

    vector<int> v(n);

    for(int i = 0; i < n; i++) {
        cin >> v[i];
    }

    int total = 0;

    // given a starting position i, what is the max value 
    // the starting player can guarantee
    vector<int> dp(n+1, 0);
    for(int i = n-1; i >= 0; i--) {
        total += v[i];
        // dp[i+1] -> player chooses to take the slice and 
        // other player becomes the starting player in rest 
        // of the game
        //
        // total - dp[i+1] -> player chooses to give away the slice
        // and keep the decoder token, now this player is the starting
        // player in the rest of the game
        dp[i] = max(dp[i+1], total - dp[i+1]);
    }

    cout << total - dp[0] << ' ' << dp[0] << '\n';

    return 0;
}


Comments

Submit
0 Comments
More Questions

227B - Effective Approach
1534B - Histogram Ugliness
1611B - Team Composition Programmers and Mathematicians
110A - Nearly Lucky Number
1220B - Multiplication Table
1644A - Doors and Keys
1644B - Anti-Fibonacci Permutation
1610A - Anti Light's Cell Guessing
349B - Color the Fence
144A - Arrival of the General
1106A - Lunar New Year and Cross Counting
58A - Chat room
230A - Dragons
200B - Drinks
13A - Numbers
129A - Cookies
1367B - Even Array
136A - Presents
1450A - Avoid Trygub
327A - Flipping Game
411A - Password Check
1520C - Not Adjacent Matrix
1538B - Friends and Candies
580A - Kefa and First Steps
1038B - Non-Coprime Partition
43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet